package com.home.security.browser.auth.mapper;

import com.home.security.browser.auth.entity.SysAuthMenu;
import com.home.security.browser.auth.entity.SysAuthRole;
import com.home.common.model.CurrentUser;

import java.util.List;

/**
 * Description:
 * Created by 王大宸 on 2020-11-12 15:09
 * Created with IntelliJ IDEA.
 */
public interface AuthMapper {

    /***
     * 功能说明：根据登录账号,查询账号信息
     *
     * @author 王大宸
     * @date 2020/11/14 2:19
     * @param account 登录账号
     * @return com.home.common.framework.core.base.entity.CurrentUser
     */
    CurrentUser getByAccount(String account);

    /***
     * 功能说明：根据登录用户信息,查询用户角色
     *
     * @author 王大宸
     * @date 2020/11/14 2:29
     * @param userId  用户id
     * @return java.util.List<com.home.security.auth.entity.SysAuthRole>
     */
    List<SysAuthRole> getRoleByUser(String userId);

    /***
     * 功能说明：根据用户id,查询菜单
     *
     * @author 王大宸
     * @date 2020/11/14 2:30
     * @param userId 用户id
     * @return java.util.List<com.home.security.auth.entity.SysAuthMenu>
     */
    List<SysAuthMenu> getMenuByUser(String userId);

    /***
     * 功能说明：根据用户id,查询返回菜单
     *
     * @author 王大宸
     * @date 2020/11/14 11:43
     * @param parentId   上级id
     * @param userId     用户id
     * @return java.util.List<com.home.security.auth.entity.SysAuthMenu>
     */
    List<SysAuthMenu> getAuthMenuByUser(String parentId, String userId, String haveButton);

    /***
     * 功能说明：根据上级菜单查询子菜单
     *
     * @author 王大宸
     * @date 2020/11/14 11:44
     * @param pid  上一级菜单
     * @return java.util.List<com.home.security.auth.entity.SysAuthMenu>
     */
    List<SysAuthMenu> getMenuAll(String pid);

    /***
     * 功能说明：获取是有的权限标识
     *
     * @author 王大宸
     * @date 2020/12/15 10:27
     * @param
     * @return java.lang.String
     */
    List<String> getPermsAll();

    /***
     * 功能说明：根据用户id,获取权限标识
     *
     * @author 王大宸
     * @date 2020/12/15 10:28
     * @param userId 需要获取权限标识的用户id
     * @return java.lang.String
     */
    List<String> getPermsByUser(String userId);

}
